/*
 * Point2D.h
 *
 *  Created on: Apr 14, 2009
 *      Author: wrice
 */

#ifndef POINT2D_H_
#define POINT2D_H_
#include "MyVideoTrace.h"
namespace MyVideoTrace {


class Point2D {
public:
	Point2D(int x, int y);
	virtual ~Point2D();

	virtual int getX() const;
	virtual int getY() const;

	virtual bool operator==(const Point2D & rhs) const;
	inline bool operator!=(const Point2D & rhs) const { return ! operator==(rhs); }

	virtual Point2D operator+(const Point2D & rhs) const;
	virtual Point2D operator-(const Point2D & rhs) const;
	virtual Point2D operator/(int dinominator) const;
	virtual Point2D operator*(int multi) const;

	friend ostream &operator<<(ostream &stream, Point2D rhs);

	virtual float distance( Point2D rhs ) const;

private:
	int x_, y_;
};

}

#endif /* POINT2D_H_ */
